[2026-01-29] SketchFeature

๐Ÿฆฅ ๋ณธ๋ฌธ

Motivation

  1. 3rd-order feature์˜ ํ•„์š”์„ฑ
    • 1st-order feature : flow-agnostic & stateless
      • EX) ํ”„๋กœํ† ์ฝœ, TTL, ํŒจํ‚ท ํฌ๊ธฐ
    • 2nd-order feature : flow-aware & stateful
      • EX) flow ํฌ๊ธฐ, ํ‰๊ท , ๋ถ„์‚ฐ, ์ตœ์†Œ๊ฐ’, ์ตœ๋Œ€๊ฐ’
    • 3rd-order feature : ํ๋ฆ„๋‹น ํŒจํ‚ท ๊ฐ„ ์ง€์—ฐ(IPD) ๋ถ„ํฌ ๋ฐ ํŒจํ‚ท ํฌ๊ธฐ(PS) ๋ถ„ํฌ ๋“ฑ์˜ ๋ถ„ํฌ ์ •๋ณด
      • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ๊ณต๊ฒฉ์„ ํƒ์ง€ํ•˜๊ธฐ ์œ„ํ•œ flow ๋ณ„ ๋ถ„ํฌ ์ •๋ณด ์ค‘์š”
      • 3์ฐจ ํŠน์ง•์€ ๊ฐ€์žฅ ํ’๋ถ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์–ด, ์ €์ฐจ์› ํŠน์ง•๋„ ๋„์ถœ ๊ฐ€๋Šฅ

    โ†’ ์–‘์žํ™”๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด๋„ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค ์ œ์•ฝ, ๊ณ„์‚ฐ ๋ณต์žก์„ฑ ๋“ฑ์œผ๋กœ ์ธก์ •์ด ์–ด๋ ค์›€

  2. ๋ฐ์ดํ„ฐ ํ‰๋ฉด ๋‚ด์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋Š” ํ•„์š”์„ฑ
    • ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ : ๊ณต๊ฒฉ ํƒ์ง€ ๋กœ์ง์˜ ์œ„์น˜์™€ ๊ด€๊ณ„์—†์ด, ๋ชจ๋“  ํ๋ฆ„๊ณผ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ Line-rate ์กฐ์‚ฌ ๋ฐ ์™„ํ™”
      • Line-rate : ๋„คํŠธ์›Œํฌ ์žฅ๋น„๊ฐ€ ๋“ค์–ด์˜ค๋Š” ํŒจํ‚ท์„ ์ง€์—ฐ์ด๋‚˜ ์†์‹ค ์—†์ด ๋ฌผ๋ฆฌ์  ํšŒ์„ ์ด ํ—ˆ์šฉํ•˜๋Š” ์ตœ๋Œ€ ์†๋„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Šฅ๋ ฅ
      • LFA ๊ฐ™์€ ๊ณต๊ฒฉ์„ ์‹ ์†ํ•˜๊ฒŒ ์ฐจ๋‹จ

    โ†’ ๋ณต์žกํ•œ ์—ฐ์‚ฐ ์ง€์›ํ•˜์ง€ ์•Š์Œ, ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค ์ œ์•ฝ

  3. ๊ธฐ์กด ์šฐํšŒ ๋ฐฉ์‹์˜ ํ•œ๊ณ„ ๋ฐ์ดํ„ฐ ํ‰๋ฉด์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ํŠน์ง• ์ถ”์ถœ๊ธฐ์˜ ํ•œ๊ณ„ (์ฆ์ƒ ํƒ์ง€๊ธฐ)
    • FlowLens, NetWarden

      control plane์—์„œ flow ๋‹น ํƒ์ง€๋ฅผ ์ˆ˜ํ–‰. CPU ์ฒ˜๋ฆฌ๋Ÿ‰์˜ ํ•œ๊ณ„๋กœ ์˜์‹ฌ์Šค๋Ÿฌ์šด ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด์„œ๋งŒ control plane์œผ๋กœ ๋ณด๋‚ธ ํ›„ ํƒ์ง€

      • ์ „์ฒด flow๊ฐ€ ์•„๋‹Œ Top-K๋ฅผ ํ†ตํ•ด ์ผ๋ถ€ ๊ณต๊ฒฉ์„ ํƒ์ง€ํ•˜๋Š” ๋ฐ, ๊ณต๊ฒฉ์ž๊ฐ€ ํŒจํ„ด์„ ์ผ๋ถ€ ๋ณ€๊ฒฝํ•˜๋Š” ์ˆœ๊ฐ„ ํƒ์ง€ํ•˜๊ธฐ ์–ด๋ ค์›€
      • Control plane Flooding ๊ณต๊ฒฉ : data plane - control plane ํ†ต์‹  ์‚ฌ์ด์˜ flooding
        • control plane rate-limiter๋กœ๋Š” ๋ง‰์„ ์ˆ˜ ์—†๊ณ  data plane rate-limiter๋Š” ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ&์ถ”๊ฐ€ ๋งค์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”๋กœ ์ธํ•ด ๋ง‰๊ธฐ ์–ด๋ ค์›€
    • NetBeacon

      data plane์— ํŠน์ง• ์ถ”์ถœ๊ธฐ์™€ ML ๋ฐฐ์น˜. ๋ฆฌ์†Œ์Šค ์ œํ•œ์œผ๋กœ 1์ฐจ ํŠน์ง•๋งŒ์„ ์‚ฌ์šฉ

SketchFeature Design

Quantization

image.png

์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค ๋‚ด์—์„œ ๋ถ„ํฌ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์–‘์žํ™”๋ฅผ ์„ ํƒ. ์—ฐ์†์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ L๊ฐœ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •. ์ด ๋•Œ ์–‘์žํ™”์˜ ๋ฒ”์œ„๊ฐ€ ์ž‘์„ ์ˆ˜๋ก ํ•ด์ƒ๋„๊ฐ€ ๋†’์•„์ ธ ์„ฑ๋Šฅ์ด ์ข‹์•„์ง€์ง€๋งŒ ๋ฆฌ์†Œ์Šค์˜ ์ œํ•œ์ด ์žˆ์–ด L๊ฐ’์„ ์ตœ์ ํ™”ํ•ด์•ผ ํ•จ.

Sketch (Count-Min)

image.png

๋ฐ์ดํ„ฐ์˜ ํ†ต๊ณ„์  ํŠน์„ฑ์„ ๊ธฐ๋กํ•˜๋Š” ํ™•๋ฅ ์  ์ž๋ฃŒ๊ตฌ์กฐ

  1. ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ถ„ํฌ ์ •๋ณด๋ฅผ ๊ฐ ํ–‰๋งˆ๋‹ค ํ•ด์‹ฑ
  2. ํ•ด์‹ฑ ๊ฐ’์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค ์นด์šดํ„ฐ์˜ ๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€

๋‚˜์ค‘์— ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ ํ–‰์— ๋Œ€ํ•œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ํ•ด์‹œ ์ธ๋ฑ์Šค ๊ฐ’๋“ค์„ ํ™•์ธํ•˜์—ฌ ์ตœ์†Ÿ๊ฐ’์„ ๋ฐ˜ํ™˜

  • ๊ธฐ์กด ๋ฐฉ์‹

    ์Šค์ผ€์น˜๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋‚˜๋ˆ„๋Š” hard partitioning

    • ๋ฉ”๋ชจ๋ฆฌ ๋น„ํšจ์œจ์„ฑ ๋ฌธ์ œ
    • ํ•ด์‹œ ์ถฉ๋Œ ํ˜„์ƒ ๋ฐœ์ƒ โ†’ ์˜ค์ฐจ ๋ฒ”์œ„ ๋ฐœ์ƒ
  • virtual sketch

    ๋‹จ์ผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ƒ์œผ๋กœ ๊ณต์œ . ๊ฐ bin๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•จ

  • ์‹คํ—˜

    image.png

Phantom decoding

image.png

์กด์žฌํ•˜์ง€ ์•Š๋Š” feature์— ํ•ด์‹œ ์ถฉ๋Œ๋กœ ์ธํ•ด 0์ด ์•„๋‹Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ˜„์ƒ. ๋ถ„ํฌ์— ๋…ธ์ด์ฆˆ๊ฐ€ ๋ฐœ์ƒ

  • Bloom Filter ์‚ฌ์šฉ

    bin์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ์œผ๋กœ ๋ถ„ํ• . flow๋ฅผ ์ธ์ฝ”๋”ฉํ•  ๋•Œ, ํ•ด๋‹น bin์— ๋Œ€์‘ํ•˜๋Š” bloom filter์˜ ๋น„ํŠธ๊ฐ€ 1๋กœ ์„ค์ •

  • ์‹คํ—˜

    image.png

SketchFeature

image.png

QNT (์–‘์žํ™” ํ•จ์ˆ˜), virtual sketch, BloomFilter๋กœ ๊ตฌ์„ฑ

๋™์ž‘ ํ๋ฆ„

  • ์ธ์ฝ”๋”ฉ
    1. ์–‘์žํ™” ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํŠน์ง• ๊ฐ’์„ ์–‘์žํ™”ํ•˜์—ฌ ์–‘์žํ™” ๋นˆ์„ ๊ฒฐ์ •
    2. Flow ID์™€ ์–‘์žํ™” ๋ ˆ๋ฒจ์„ ํ•ด์‹ฑํ•˜์—ฌ ํ•ด๋‹น Bloom Filter ๋ถ€๋ถ„์„ 1๋กœ ์ €์žฅ
    3. ๋™์‹œ์—, Flow ID์™€ ์–‘์žํ™” ๋ ˆ๋ฒจ์„ ํ•ด์‹ฑํ•˜์—ฌ virtual sketch์— +1์„ ํ•˜์—ฌ ์ €์žฅ
  • ๋””์ฝ”๋”ฉ
    1. ๋ถ„ํฌ๋ฅผ ๋ณต์›ํ•  ๋•Œ, ํ•ด๋‹น Flow ID์™€ ์–‘์žํ™” ๋ ˆ๋ฒจ์„ ํ•ด์‹ฑ
    2. Bloom filter๋ฅผ ๋จผ์ € ํ™•์ธํ•˜์—ฌ 1์ธ์ง€ ๊ฒ€์ฆ
    3. Bloom filter์—์„œ 1์ธ ๊ฒฝ์šฐ์—๋งŒ ์Šค์ผ€์น˜์—์„œ ๊ฐ’์„ ์ฝ์–ด์˜ค๋ฉฐ, ์˜ค์ฐจ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์นธ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์„ ํƒ

    โ†’ ๋ถ„ํฌ ๋ฒกํ„ฐ ์™„์„ฑ

Evaluation

baseline๊ณผ์˜ ๋น„๊ต

  • ๋ฉ”๋ชจ๋ฆฌ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ์ •ํ™•๋„

image.png

  • workload ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ์ •ํ™•๋„ ใ…‡

image.png

๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต

image.png

  • NetWarden๊ณผ์˜ ๋น„๊ต

    NetWarden์€ CTC ํƒ์ง€์—์„œ ์ตœ์ ์— ๊ฐ€๊น์ง€๋งŒ,

    NetWarden์˜ ์‚ฌ์ „ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ํƒ์ง€, ๋ฌด์ œํ•œ ๋ฆฌ์†Œ์Šค ๋“ฑ์„ ๊ฐ€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์‹ค์„ฑ์ด ์—†์Œ

  • FlowLens&NetBeacon๊ณผ์˜ ๋น„๊ต

    SketchFeature์˜ ๋ชจ๋“  ๋ถ€๋ถ„์—์„œ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚จ

Discussions & Contribution

  • Bloom Filter๋ฅผ ํ™œ์šฉํ•œ ํŒฌํ…€ ๋””์ฝ”๋”ฉ ๋ฌธ์ œ ํ•ด๊ฒฐ
  • ์Šค์ผ€์น˜ ๊ฐ€์ƒํ™”๋ฅผ ํ†ตํ•œ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ ๊ทน๋Œ€ํ™”
  • ์Šค์ผ€์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๊ฒฌ๊ณ ํ•จ
    • ํ•ด์‹œ ์ถฉ๋Œ์„ ์•…์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•ด์‹œ ํ•จ์ˆ˜์˜ seed๋ฅผ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์€ ์–ด๋ ค์›€
  • ๊ณต๊ฒฉ์ž๊ฐ€ SketchFeature์— ์‚ฌ์ „ ์ง€์‹์ด ์žˆ์–ด์„œ mice flow๋ฅผ ๋งŽ์ด ์•Œ๋ฉด..?

โ†’ ๋™์  ์–‘์žํ™”๋ฅผ ํ†ตํ•ด ๋งˆ์ด์Šค ํ”Œ๋กœ์šฐ๋Š” ์ณ๋‚ด๋Š” ๊ฒŒ..?

Categories:

Updated:

Leave a comment